GODRIVER-3565 Add UnmarshalBSON to GridFSFile #2077
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GODRIVER-3565
Summary
Update
GridFSFileto implementbson.UnmarshalerBackground & Motivation
The
gridfs.Fileobject was initially added in GODRIVER-1548. At that time, theUnmarshalBSONmethod was implemented to allow documents from the "files" collection to decode into the object, while avoiding the use of explicit BSON tags. However, the original PR does not clearly explain why adding BSON tags was intentionally avoided.Later,
GODRIVER-2606proposed deprecating theUnmarshalBSONmethod, citing that much of its functionality was unused in the Go Driver API and retained only for backward compatibility.As part of the Go Driver 2.0 efforts,
UnmarshalBSONwas removed in GODRIVER-2617.This change introduces an issue with the
GridFSBucket.Find()method, which returns a cursor streaming documents that map directly to theGridFSFiletype. As a result, users can no longer decode this stream directly into instances ofGridFSFile`, as shown below:GODRIVER-3565 suggests adding
UnmarshalBSONback toGridFSFileas a convenience to users.